/**
 * 文件名：****.java
 * 版权：Copyright Lightkit All Rights Reserved.
 * 描述：*****
 */
package com.lightkits.wms.domain.orderscanner;

import com.lightkits.common.db.entity.WmExecuteLine;
import com.lightkits.common.db.entity.WmSaleTicketLine;
import com.lightkits.common.db.entity.WmSalesTicket;
import com.lightkits.framework.common.model.CheckResult;
import com.lightkits.wms.dto.orderscanner.model.ScannerHeaderDto;
import com.lightkits.wms.dto.orderscanner.model.ScannerLineDto;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author jing.wei@hand-china.com
 * @date 2019/6/20 18:43
 **/
@Component
public interface CreateDocScanParams {
    /**
     * 售货单头的创建
     *
     * @param headDto 售货单头参数
     * @return WmSalesTicket
     **/
    CheckResult<WmSalesTicket> createSaleHead(ScannerHeaderDto headDto);

    /**
     * 创建售货单行
     *
     * @param lineDtos 售货单行参数
     * @param headId   售货单头ID
     * @param currency 货币
     * @return WmSaleTicketLine
     **/
    CheckResult<List<WmSaleTicketLine>> createSaleLine(List<ScannerLineDto> lineDtos,
                                                       Long headId, String currency);

    /**
     * 创建售货单行执行
     *
     * @param lineDtos        售货单行参数
     * @param saleTicketLines 售货单行
     * @param headerId        售货单头Id
     * @param eventId         事件ID
     * @return WmExecuteLine
     */
    CheckResult<List<WmExecuteLine>> createExeLine(List<ScannerLineDto> lineDtos,
                                                   List<WmSaleTicketLine> saleTicketLines,
                                                   Long headerId,
                                                   Long eventId);
}
